package attend.action.common;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import com.opensymphony.xwork2.ActionContext;

import attend.UserContainer.User;
import attend.com.CodeMetrix;
import attend.com.Session;
import attend.dao.common.CommonDao;
import exception.BaseException;

public class CommonAction extends Session {
	
	private String	sgroup;								//그룹
	private String	steam;								//팀
	private String	semp_no;							//사번
	
	private int		emp_no;
	
	private List<HashMap<String, String>> list;				//dao단에서 넘어온 결과들을 전달 받는 list.
	
	private List<HashMap<String, String>> listGroup;		//dao단에서 넘어온 결과들을 전달 받는 그룹list.
	
	private List<HashMap<String, String>> listTeam;			//dao단에서 넘어온 결과들을 전달 받는 팀list.
	
	private List<HashMap<String, String>> listEmp;			//dao단에서 넘어온 결과들을 전달 받는 사원 list.
	
	private CommonDao commonDao = null;
	
	private User user;
	
	public String execute() throws BaseException {
		return SUCCESS;
	}
	
	/**
	 * TB_ATTEND의 기준날짜에서 YYYY만 잘라 가져옴.
	 * 조회년도
	 * @return
	 * @throws BaseException
	 * @throws SQLException
	 */
	public String retrieveYear() throws BaseException , SQLException {
		
		commonDao  = new CommonDao();
		
		commonDao.getList();	//YYYY만 가져와 select 태그에 담는다..
		
		return SUCCESS;
	}
	
	/**
	 * 그룹변경시에 팀_list를 ajax로 가져온다.
	 * @return
	 * @throws BaseException
	 * @throws SQLException
	 * @since	2009/01/30
	 */
	public String team_doubleSelect() throws BaseException , SQLException {
		System.out.println("emp_no>>>>"+emp_no);
		//sgroup 이 공백이거나 null일 경우 기본생성만 해준다.
		if (sgroup == null || sgroup.equals("")) {
			listTeam	=	new ArrayList<HashMap<String,String>>();
			return SUCCESS;
		}
		
		commonDao  = new CommonDao();
		
		//commonDao.retrieveTeamByGroupCd(sgroup);
		if (sgroup.equals(CodeMetrix.ALL)) {
			listTeam	=	new ArrayList<HashMap<String,String>>();
			return SUCCESS;
		}
		
		session = ActionContext.getContext().getSession();
		user = (User)session.get("user");
		
		empInfo =  user.getEmpInfo();
		
		commonDao.retrieveTeamListJoinAuthDept(Integer.valueOf(empInfo.get("emp_no")) , Integer.valueOf(sgroup));
		listTeam = commonDao.getList();
		
		return SUCCESS;
	}
	
	/**
	 * 그룹변경시에 팀_list를 ajax로 가져온다.
	 * @return
	 * @throws BaseException
	 * @throws SQLException
	 * @since	2009/01/30
	 */
	public String team_doubleSelectAuthDept() throws BaseException , SQLException {
		//sgroup 이 공백이거나 null일 경우 기본생성만 해준다.
		if (sgroup == null || sgroup.equals("")) {
			listTeam	=	new ArrayList<HashMap<String,String>>();
			return SUCCESS;
		}
		
		commonDao  = new CommonDao();
		
		//commonDao.retrieveTeamByAuthDept(sgroup);
		commonDao.retrieveTeamByGroupCd(sgroup);
		listTeam = commonDao.getList();
		
		return SUCCESS;
	}
	
	/**
	 * 그룹변경시나 팀변경시에 사원_list를 ajax로 가져온다.
	 * @return
	 * @throws BaseException
	 * @throws SQLException
	 * @since	2009/01/30
	 */
	public String emp_doubleSelect() throws BaseException , SQLException {
		
		//sgroup 이 공백이거나 null일 경우 기본생성만 해준다.
		if (sgroup == null || sgroup.equals("") || steam == null || steam.equals("")) {

			listTeam					=	new ArrayList<HashMap<String,String>>();
			
			HashMap<String, String> hm	=	new HashMap<String, String>();
			
			listTeam.add(hm);
			
			return SUCCESS;
		}
		
		commonDao  = new CommonDao();
		
		commonDao.retrieveEmpNoByGroupCdAndTeamCd(sgroup , steam);
		
		listEmp = commonDao.getList();
		
		return SUCCESS;
	}
	
	/********************************G E T T E R - S E T T E R - S T A R T***************************************/

	public String getSemp_no() {
		return semp_no;
	}

	public void setSemp_no(String semp_no) {
		this.semp_no = semp_no;
	}

	public String getSteam() {
		return steam;
	}

	public void setSteam(String steam) {
		this.steam = steam;
	}

	public List<HashMap<String, String>> getList() {
		return list;
	}

	public void setList(List<HashMap<String, String>> list) {
		this.list = list;
	}

	public List<HashMap<String, String>> getListEmp() {
		return listEmp;
	}

	public void setListEmp(List<HashMap<String, String>> listEmp) {
		this.listEmp = listEmp;
	}

	public List<HashMap<String, String>> getListGroup() {
		return listGroup;
	}

	public void setListGroup(List<HashMap<String, String>> listGroup) {
		this.listGroup = listGroup;
	}

	public List<HashMap<String, String>> getListTeam() {
		return listTeam;
	}

	public void setListTeam(List<HashMap<String, String>> listTeam) {
		this.listTeam = listTeam;
	}

	public String getSgroup() {
		return sgroup;
	}

	public void setSgroup(String sgroup) {
		this.sgroup = sgroup;
	}
	
	@Override
	public void setUser(User user) {
		this.user = user;
		
	}

	public User getUser() {
		return user;
	}
	
	public int getEmp_no() {
		return emp_no;
	}

	public void setEmp_no(int emp_no) {
		this.emp_no = emp_no;
	}


	/********************************G E T T E R - S E T T E R - E   N   D***************************************/
}
